package com.twc.ftp.config;

import cn.hutool.core.io.FileUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Configuration;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
 * Created by twc on 22:37 2020/9/21.
 */
@Configuration
public class BehindRunningCfg implements CommandLineRunner {

    @Value("${root.path}")
    private String root_path;

    @Value("${server.adminPassword}")
    private String server_adminPassword;

    @Value("${server.port}")
    private String server_port;

    @Value("${ftp.maxFileSize}")
    private String ftp_maxFileSize;

    private List<String> fileTypeList = new ArrayList<>();

    @Override
    public void run(String... args) {
        String path = Objects.requireNonNull(getClass().getClassLoader().getResource("ftp.properties")).getFile();
        path = path.substring(0, path.lastIndexOf("/"));
        File root = FileUtil.file(path + "/static/img");
        File[] files = root.listFiles();
        if(files != null){
            for(File file : files){
                fileTypeList.add(file.getName().replace(".svg", ""));
            }
        }
        System.out.println(getClass().getClassLoader());
        System.out.println("#################################################################################################");
        System.out.println("# 项目访问地址：http://localhost:"+server_port);
        System.out.println("# 文件管理的文件根目录（例如：/usr/local 或者 D://）："+root_path);
        System.out.println("# ###############################################################################################");
        System.out.println("# 管理密码："+server_adminPassword);
        System.out.println("# 文件下载最大文件配置："+ftp_maxFileSize);
        System.out.println("#################################################################################################");
    }

    public String findByFileType(String name) {
        return fileTypeList.stream().filter(o -> o.equals(name.substring(name.lastIndexOf(".") + 1))).findAny().orElse(null);
    }
}
